/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.gob.fonafe.dao.impl.stored;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.StoredProcedure;
import org.springframework.jdbc.core.SqlOutParameter;
import pe.gob.fonafe.domain.UsuarioBean;
/**
 *
 * @author Irving
 */
public class RegistrarUsuarioSP  extends StoredProcedure{
    private static final String PROC_PARAM ="USERADMIN.P_REGISTRA_USUARIO";

    public RegistrarUsuarioSP(DataSource ds) {
        super(ds,PROC_PARAM);

        declareParameter(new SqlParameter("P_DNIUSUARIO", Types.VARCHAR));
        declareParameter(new SqlParameter("P_NOMBRE", Types.VARCHAR));
        declareParameter(new SqlParameter("P_APE_PATERNO", Types.VARCHAR));
        declareParameter(new SqlParameter("P_APE_MATERNO", Types.VARCHAR));
        declareParameter(new SqlParameter("P_EMAIL", Types.VARCHAR));
        declareParameter(new SqlParameter("P_FECHA_NACIMIENTO", Types.DATE));
        declareParameter(new SqlParameter("P_FECHA_CREACION", Types.DATE));
        declareParameter(new SqlParameter("P_FECHA_CADUCIDAD", Types.DATE));
        declareParameter(new SqlParameter("P_LOGIN", Types.VARCHAR));
        declareParameter(new SqlParameter("P_PASSWORD", Types.VARCHAR));
        declareParameter(new SqlParameter("P_TB_PERFIL_ID_PERFIL", Types.NUMERIC));
        declareParameter(new SqlParameter("P_TB_EMPRESA_ID_EMPRESA", Types.NUMERIC));
        declareParameter(new SqlOutParameter("V_MENSAJE", Types.VARCHAR));
        declareParameter(new SqlOutParameter("V_EXITO", Types.VARCHAR));
        compile();
    }

    public Map execute(UsuarioBean usuarioBean){
        Map inputs = new HashMap();
        inputs.put("P_DNIUSUARIO", usuarioBean.getDniUsuario());
        inputs.put("P_NOMBRE", usuarioBean.getNombre());
        inputs.put("P_APE_PATERNO", usuarioBean.getApe_Paterno());
        inputs.put("P_APE_MATERNO", usuarioBean.getApe_Materno());
        inputs.put("P_EMAIL", usuarioBean.getEmail());
        inputs.put("P_FECHA_NACIMIENTO", usuarioBean.getFecha_nacimiento());
        inputs.put("P_FECHA_CREACION", usuarioBean.getFecha_creacion());
        inputs.put("P_FECHA_CADUCIDAD", usuarioBean.getFecha_caducidad());
        inputs.put("P_LOGIN", usuarioBean.getLogin());
        inputs.put("P_PASSWORD", usuarioBean.getPassword());
        inputs.put("P_TB_PERFIL_ID_PERFIL", usuarioBean.getTb_Perfil_id_perfil());
        inputs.put("P_TB_EMPRESA_ID_EMPRESA", usuarioBean.getTb_Empresa_id_empresa());
        return super.execute(inputs);
    }
}
